专利摘要:
置換されるキャッシュラインを決定するためのシステムが記述される。ある実施形態において、システムは複数のキャッシュラインを備えるキャッシュを含む。システムは、置換のためのキャッシュラインを識別するように構成された識別子をさらに含む。システムは、また、インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された識別子の値を決定するように構成された制御ロジックを含む。3
公开号:JP2011513844A
申请号:JP2010548780
申请日:2009-02-03
公开日:2011-04-28
发明作者:イングル、アジャイ・エー.;コドレスキュ、ルシアン;プロンケ、エリッチ・ジェイ.
申请人:クゥアルコム・インコーポレイテッドQualcomm Incorporated;
IPC主号:G06F12-12
专利说明:

[0001] 本明細書に開示される発明のコンセプトの実施形態は、一般にデータ処理システムの分野に関する。例えば、本明細書に開示される発明のコンセプトの実施形態は、キャッシュライン置換のためのシステムおよび方法に関する。]
背景技術

[0002] 今日、多くの計算システムにおいて、メモリ(例えば、ランダムアクセスメモリ)は、計算命令でプロセッサによって使用されるべきデータを記憶する。例えば、メモリはプロセッサによって加算される2つのオペランドを記憶し、2つのオペランドの合計の結果を記憶する。従って、例において、プロセッサは2つのオペランドを読み取るためにメモリにアクセスし、結果を書き込むためにメモリに再度アクセスする。]
[0003] メモリは、プロセッサよりも遅い動作速度を有する。従って、プロセッサは、メモリのアクセスの間、待つ。それゆえに、電力および時間は、プロセッサがメモリのアクセスの時間を無駄に待っている間、計算デバイスによって消費される。計算システムの全体の処理速度を高め、電力消費を減らすために、メモリよりも速い動作速度を有するキャッシュがプロセッサに結合される。]
[0004] キャッシュは、複数のキャッシュラインを含み、各キャッシュラインはメモリ内のデータの一部を記憶する。]
[0005] キャッシュはメモリよりも速いため、プロセッサによって使用されるデータはキャッシュの一部(例えば、キャッシュライン)にプレロード(preload)される。それゆえに、プロセッサが処理のためのデータを検索する時、プロセッサは、データを得るためにキャッシュにアクセスする。キャッシュがデータを含まない場合、データを得るために、メモリがアクセスされる。]
[0006] さらなるデータがキャッシュにプレロードされると、以前に記憶されたデータは新たに計算または検索されたデータと置換される。結果として、キャッシュラインが占領および/または置換されるシーケンスを決定するように構成されたシステムが存在する。従来のプロセッサにおいて、キャッシュのキャッシュラインは順番に使用され、プロセッサは、一度キャッシュの最後のキャッシュラインに到達すると、最初のキャッシュラインに戻る。システムは、プロセッサによって使用される次のキャッシュラインを決定およびポイント(point)するためにプロセッサに存在する。1つのそのようなシステムは、先入れ先出し(FIFO)キャッシュ置換方式を実施し、そこでは、ポインタがキャッシュの次のキャッシュラインを連続的にポイントするために増やされる。]
[0007] プログラムは、キャッシュラインを無効にするためにキャッシュ保全命令(cache maintenance instruction)を含むようプロセッサによって実行される。命令がキャッシュラインを無効にするため、プロセッサによって置換されるべき有効なキャッシュラインをシステムがポイントする一方で、無効なキャッシュラインがキャッシュに存在する。結果として、FIFO置換方式を実施するキャッシュにおいては、無効なキャッシュラインが存在するにもかかわらず、有効なキャッシュラインがロード動作によって置換される。このアプローチの1つの問題は、有効なキャッシュラインの減少が、より頻繁なメモリへのアクセスをプロセッサに要求し、それにより、電力消費の増加および計算速度の低下を引き起こすことである。]
[0008] 置換するキャッシュラインを決定するためのシステムが記述される。ある実施形態において、システムは、複数のキャッシュラインを備えるキャッシュを含む。システムは、置換のためのキャッシュラインを識別するように構成された識別子をさらに含む。システムは、また、インクリメンタ、キャッシュ保全命令、または同じ値のままから選択される識別子の値を決定するように構成された制御ロジックを含む。]
[0009] 本明細書に開示される1つ以上の実施形態の利点は、電力の節約および増大された処理速度を含む。]
[0010] 実例となる実施形態は、本明細書に開示される発明のコンセプトを制限または定義するためではなく、それらの理解を助けるための例を提供するために述べられる。本開示の別の態様、利点、および特徴は、下記項目:図面の簡単な説明、発明の詳細な説明、および請求項、を含む本明細書全体のレビューの後に明確になるであろう。]
[0011] 本明細書に開示される本発明のコンセプトのこれら、および、別の特徴、態様、および利点は、以下の発明の詳細な説明が添付図と関連して読まれる時に、より理解される。]
図面の簡単な説明

[0012] 図1は、置換するためのキャッシュラインを決定する従来のシステムを示す従来技術の概念図である。
図2は、インデックス無効命令が存在する、置換のためのキャッシュラインを決定する例示的なシステムを示す概略図である。
図3は、インデックス無効命令およびアドレス無効命令が存在する、置換のためのキャッシュラインを決定する例示的なシステムを示す概略図である。
図4は、図2の概略図で示されたシステムの動作の例示的な方法を示すフローチャートである。
図5は、図3の概略図に示されたシステムの動作の例示的な方法を示すフローチャートである。
図6は、図2−3に示されるようなキャッシュ置換システム含むデジタル信号プロセッサを組み込む例示的なポータブル通信デバイスを示す一般図である。
図7は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的な携帯電話を示す一般図である。
図8は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的な無線インターネットプロトコル電話を示す一般図である。
図9は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的なポータブルデジタルアシスタントを示す一般図である。
図10は、図2−3に示されるようなキャッシュ置換システムを含むデジタル信号プロセッサを組み込む例示的なオーディオファイルプレーヤを示す概略図である。] 図1 図9
発明の詳細な説明

[0013] 記述を通して、説明の目的のために、数々の特定な詳細が、本明細書に開示される発明のコンセプトの全体の理解を提供するために示される。しかし、本明細書に開示される発明のコンセプトが、これらの特定な詳細の幾つかを除いて実施されうることは当業者に明確であろう。別の例において、周知の構造およびデバイスは、本明細書に開示される発明のコンセプトの基礎概念を不明確にしないために、ブロック図の形態で示される。]
[0014] 本明細書に開示される発明のコンセプトの実施形態は、キャッシュライン置換のためのシステムおよび方法に関する。図1の概略図で示される従来のシステム100が、キャッシュに存在する無効なキャッシュラインの数を減らすために変更される。結果として、キャッシュミスの存在をより少なくする。それゆえに、プロセッサは、動作中に、より少ない頻度でメモリにアクセスする。]
[0015] 従来のキャッシュ置換システム
図1は、置換のためのキャッシュラインを決定する従来のシステム100を示す概略図である。システム100において、プロセッサは、キャッシュラインに記憶されたデータを置換しながらキャッシュを通して連続的に処理するように構成される。]
[0016] 図1の概略図で示されるように、システム100はタグ記憶装置110および状態記憶装置112を含む。タグ記憶装置110および状態記憶装置112は、同じ数のセット(set)(例えば、行)とウェイ(way)(例えば、列)とを含む配列(array)である。タグ配列(tag array)110および状態配列(state array)112の各セルは、プロセッサのキャッシュのキャッシュラインに対応する。システム100において、各セットは、16個のデータキャッシュラインに対応する16個のウェイ(0−15)を含み、それらは、別々にプロセッサから読み取られ、プロセッサに書き込まれる。] 図1
[0017] タグ配列110の各セルはタグを記録する。タグは、現在キャッシュラインに対応しているメモリ位置のアドレスである。例えば、キャッシュラインはメモリアドレスAを有するメモリ位置からデータを記憶する。それゆえに、対応タグのセルはメモリアドレスAを記憶する。状態配列112の各セルは対応キャッシュラインの状態(例えば、有効または無効)を記憶する。上の例を継続して、キャッシュライン内の記憶された値が有効な場合、次に、状態セルは、キャッシュラインが有効であることを示す情報を記憶する。プロセッサによって実行されるプログラムはキャッシュ保全命令を含み、それは、無効化されるキャッシュラインを直接ポイントするか、または、タグに対応するメモリの値を記憶するキャッシュラインが無効化されるためのタグをポイントすることによって、キャッシュラインを無効にする命令を含む。キャッシュラインを無効にするために、システム100は状態配列112の対応セルに無効状態を記憶する。]
[0018] システム100は、複数の識別子114(例えば、ポインタ)をさらに含む。識別子114の数は、タグ配列110および状態配列112のセットの数と一致する。さらに、システム100において、セットに対するウェイの数が16であるため、各識別子は4ビットである。従って、各FIFOは、それぞれのセットの16個のウェイのいずれかをポイントするように構成され、それゆえに、セットと関連付けられた16個のキャッシュラインをポイントすることができる。]
[0019] システム100において、命令102がプロセッサによって実行される時、命令102はシステム100によって受信される。命令102は、セット104、バイト106、およびタグ108を含む。バイト106は、命令(例えば、ロード、追加など)を実行するプロセッサによって実行される動作のタイプである。命令が、ロード命令または記憶命令である場合、セット104は、16個のキャッシュラインの内の1つの値がロードまたは記憶されるセットである。タブ108は、命令が含むべき値を記憶するメモリのメモリアドレスである。例において、命令がロードオペランドAである場合、命令は、オペランドAをキャッシュのどこに記憶するかを示すセット104、命令がロード命令であることを示すバイト106、オペランドAがメモリ内でどこに記憶されたかを示すタグ108を含む。]
[0020] システム100は、インクリメンタ(incrementer)120をさらに含む。システム100において、インクリメンタは識別子114の各々に対して存在する。ロードされるべきキャッシュのセットの次のウェイは、セットに対する対応識別子114によってポイントされる。次に、値がキャッシュのセット104のウェイにロードされると、セット104の識別子114に対するインクリメンタ120は、キャッシュのセットの次のウェイをポイントするために識別子を増やす。セットの最後のウェイまで増やすと、インクリメンタは、セットの最初のウェイをポイントするために値を繰り返す(例えば、15から0に)。従って、キャッシュラインは連続的にロードされる。]
[0021] 命令102がロード命令ではない場合、次に、システム100は、命令102のタグ108がタグ配列110に記憶されるか否かを決定する。タグ108がタグ配列110に記憶される場合、次に、タグ108に対応するメモリ位置のメモリ値が記憶される。記憶位置は、タグ108が記憶されるタグ配列110のセルに対するそれぞれのキャッシュラインである。]
[0022] システム100は、タグ108に対応するメモリ位置に記憶されたメモリ値がキャッシュのキャッシュラインに記憶されるか否かを決定するために、タグコンパレータ(tag comparator)116を含む。タグコンパレータは、タグ配列および状態配列の各ウェイ(例えば、列)に対して存在する。それゆえに、システム100について、16個のタグコンパレータが116に存在する。その対応ウェイについて、タグコンパレータは、タグ108と、セット104のウェイに対してタグ配列110に記憶されたタグとを比較する。タグコンパレータは、タグ配列110に記憶されたタグが、タグ配列110のセルに対応する状態配列112のセルの状態にアクセスすることによって、有効であるか否かをさらに決定する。16個のコンパレータのどれもが有効状態のタグの間に一致を見つけられない場合、タグコンパレータ116はメモリ値がキャッシュに記憶されていないことを示すミス信号118を出力する。そして、値はメモリからキャッシュにロードされる。16個のコンパレータの1つが有効状態のタグの間に一致を見つけると、タグコンパレータ116はメモリ値がキャッシュに記憶されたことを示すヒット信号118を出力する。そして、プロセッサは、メモリにアクセスする代わりに、キャッシュにアクセスする。]
[0023] 命令102がロード命令である場合、システム100は、どのキャッシュラインがロードされるべきかを決定するために、セット104に対する識別子114にアクセスする。次に、識別子114はロードされるべき次のキャッシュラインをポイントするために増やされる。]
[0024] 命令がキャッシュのキャッシュラインを無効化するために存在することから、対応識別子がキャッシュの異なるキャッシュラインを示す間、無効なキャッシュラインが存在する。結果として、従来のシステム100を含むプロセッサにおいて、無効なキャッシュラインが存在するにもかかわらず、有効なキャッシュラインがロード動作によって置換される。]
[0025] キャッシュ保全命令
キャッシュ保全命令は、インデックスによる無効化命令(invalidate by index instruction)、およびアドレスによる無効化命令(invalidate by address instruction)を含む。インデックスによる無効化命令は、無効化されるキャッシュのインデックスを含む。従って、命令は、無効化されるべきキャッシュラインを明確にポイントする。それゆえに、プロセッサがインデックスによる無効化命令を実行すると、インデックスされたキャッシュラインに対応する状態配列のセルは無効状態を記憶する。]
[0026] アドレスによる無効化命令は、メモリのアドレス(例えば、タグ)を含む。従って、プロセッサがアドレスによる無効化命令を実行すると、プロセッサは、メモリアドレスに関連付けられたキャッシュラインを無効化する。それにより、プロセッサは、タグ配列内のメモリアドレスを検索し、一致するタグを記憶するタグセルに関連付けられたキャッシュラインを無効化する。]
[0027] 例示的なシステム200(図2)および例示的なシステム300(図3)内の、無効化命令を介して無効化されるキャッシュラインについて、システム200および300は、識別子が無効化されたキャッシュラインをポイントするなど、無効化されるキャッシュラインに関するセットに対応する識別子をキャストする。結果として、無効化されるキャッシュラインは、同一のセットの有効なキャッシュラインが置換される前に置換される。]
[0028] キャッシュ置換システムの実例となる実施形態
図2−3の概略図は、キャッシュラインを置換するためのシステムの実例となる実施形態を示す。図2の概略図は置換のためのキャッシュのキャッシュラインを決定する例示的なシステム200を示し、インデックスによる無効化命令がプロセッサの動作中に存在する。図3の概略図は、置換のためのキャッシュのキャッシュラインを決定する例示的なシステム300を示し、インデックスによる無効化命令およびアドレスによる無効化命令がプロセッサの動作中に存在する。]
[0029] 図2を参照すると、システム200は、図1のシステム100と比べて、セレクタ202を含む。非保全命令の処理の間、セレクタ202は、増分された識別値(すなわち、インクリメンタ120の出力)を選択する。それにより、システム200は、図1のシステム100に類似して動作する。例えば、ロード動作の間、システム200は、識別子114を選択するための命令102のセット104、状態配列112のセット、およびタグ配列110のセットを使用する。プロセッサは、次に、セット104および識別子114によって識別されたキャッシュラインに、メモリのタグ108に記憶される値をロードする。バイト106が命令はロード命令であることを示すため、バイト106を受信するインクリメンタ120は、セットの次のキャッシュラインをポイントするために、選択された識別子114を増やす。次に、セレクタ202は、命令がキャッシュ保全命令/インデックスによる無効化命令ではないため、インクリメンタの出力(増分された識別値)を選択する。識別子114は、次に、増分された識別値を記憶する。]
[0030] 別の例において、記憶動作の間、システム200は、識別子114を選択するための命令102のセット104、状態配列112のセット、およびタグ配列110のセットを使用する。プロセッサは、セット104および既定のウェイに対応するキャッシュラインの値を、記憶のためにタグ108によって識別されたメモリのメモリ位置に送信する。命令はロード命令でなく、また、プロセッサによって実行されるためにメモリからの値を要求もしないため、インクリメンタ120は、識別値を増やさない。命令がインデックスによる無効化命令でないため、セレクタ202はインクリメンタ120の出力を選択する。従って、識別子の識別値は記憶命令の実行の間、同じままである。]
[0031] 加算または乗算などの幾つかの命令は、命令の実行のために使用されるオペランドを含む。オペランドは、一般的にメモリに記憶される。よって、オペランドはキャッシュに記憶されうる。そして、システム200は、オペランドがキャッシュに記憶されるか否かを決定する。図1のシステム100に類似して、オペランドがキャッシュに記憶されると、ヒット信号118がタグコンパレータ116から出力される。オペランドがキャッシュに記憶されないと、ミス信号118がタグコンパレータ116から出力される。ヒット信号またはミス信号118は、インクリメンタ120が識別値を増やすべきか否かの制御を助けるために、インクリメンタ120にルートされる。]
[0032] 信号118がミス信号の場合、オペランドはキャッシュに記憶されず、メモリからキャッシュにロードされる必要がある。そのため、セット104に対する識別子114は、置換されるべき次のキャッシュラインを識別する。オペランドは識別されたキャッシュラインにロードされる。ミス信号118を受信すると、インクリメンタ120は、置換されたキャッシュラインの次のキャッシュラインをポイントするために、識別値を増やす。信号118がヒット信号の場合、オペランドはメモリからキャッシュにロードされる必要はない。従って、ヒット信号118を受信すると、インクリメンタ120は識別値を変更しない。]
[0033] システム200の動作は、キャッシュ保全命令(例えば、キャッシュ無効化命令)の実行中、システム100(図1)の動作からそれる。キャッシュ保全命令が実行される時、セレクタ202は命令からインデックス入力を選択する。プロセッサは、また、インデックスされたキャッシュラインを無効化する。セレクタ202が命令からインデックスを選択するため、インデックスされたキャッシュラインに対する識別子114は、無効化されたキャッシュラインをポイントするためにインデックスに等しい。結果として、キャッシュラインが無効化されると、システム200は、置換されるべきセットの次のキャッシュラインとして、無効化されたキャッシュラインを設定する。]
[0034] 図3を参照すると、無効化は、インデックスまたはアドレスによって実行される。従って、図1のシステム100と比べて、システム300は、符号器302およびセレクタ304を含む。図2のシステム200と同様に、システム300は、非保全命令の実行中、図1のシステム100に類似して動作する。保全命令が実行される時、保全命令は、インデックスによる無効化命令またはアドレスによる無効化命令である。キャッシュ保全命令がインデックスによる無効化命令の場合、セレクタ304は命令102からインデックスを選択し、システム300は図2のシステム200に類似して動作する。]
[0035] キャッシュ保全命令がアドレスによる無効化命令の場合、セレクタ304は符号器302の出力を選択する。前に記述されたように、アドレスによる無効化命令は、プロセッサがタグ108のメモリ位置に関連付けられたキャッシュラインを見つけ、キャッシュラインを無効化するためのメモリアドレスを含む。従って、符号器302は、識別子がプロセッサによる置換のための無効化されたキャッシュラインをポイントするように、メモリのタグ108のメモリ位置に関連付けられたセット104内のキャッシュラインの識別値を出力するよう構成される。]
[0036] タグコンパレータは、タグ配列のセットの各ウェイに対して存在する。従って、実例となる実施形態において、16個のタグコンパレータが存在する。前に述べられたように、タグコンパレータが有効状態のタグの一致を有する場合、タグコンパレータはヒット信号を出力する。ある実施形態において、コンパレータがタグと一致し、状態配列112内の対応セルから有効状態を受信する場合、次にコンパレータは1を出力する。セット内の1つのキャッシュラインのみがメモリアドレス(タグ108)と関連付けられる。従って、セット104に対する16個のタグコンパレータの出力は以下のようになる:(i)ミスを表す16個の0(すなわち、各タグコンパレータから0を1個ずつ)、または(ii)ヒットを表す15個の0および1個の1(すなわち、タグと一致し、有効状態を受信するタグコンパレータから1を1個、および残りの15個の各タグコンパレータのから0を1個ずつ)。従って、16ビットが、タグコンパレータ116から符号器302に送信される。]
[0037] ある実施形態において、符号器302は、受信された16ビット値を4ビット識別値に符号化するように構成される。例えば、セット104のウェイ10(ウェイ0−15から)に対するタグコンパレータが1の場合、次に、符号器は「1010」を出力する。別の例において、ウェイ3が1の場合、次に、符号器302は「0011」を出力する。従って、符号器302によって出力される識別値は、無効化されたキャッシュラインが置換される次のキャッシュラインとしてポイントされるようにセレクタ304によって選択され、識別子114によって記憶される。]
[0038] キャッシュ置換システムの動作の例示的な方法
図4−5は、キャッシュ置換システム200、300の動作の例示的な方法を示すフローチャートである。図4は、図2の概略図で示されるシステム200の動作の例示的な方法400を示すフローチャートである。図5は、図3の概略図で示されるシステム300の動作の例示的な方法500を示すフローチャートである。]
[0039] 図4を参照すると、システム200は、実行される命令がキャッシュ保全命令であるか否かを決定する(402)。システム200のためのキャッシュ保全命令は、インデックスによる無効化命令である。命令がキャッシュ保全命令でない場合、次にシステム200は、インクリメンタ120の出力として、セット104に対する識別子をキャストする(404)。ある実施形態において、セレクタ202は、識別子114に値をフィードバックするために、インクリメンタ120の出力を選択する。インクリメンタ120がタグコンパレータ116からヒット信号118を受信する場合、インクリメンタ120は識別値を増やさない。インクリメンタ120がミス信号118を受信する場合、インクリメンタ120は識別値を増やす。それゆえに、セット104に対する識別子は、同じままであるか、または増やされるかのいずれか一方である。]
[0040] 命令がキャッシュ保全命令である場合、システム200は、命令102から無効化インデックスを検索する。インデックスに位置するキャッシュラインは、次に、無効化される(408)。410に進み、システム200は命令からのインデックスとしてセット104に対する識別子をキャストする。ある実施形態において、セレクタ202は、識別子114にフィードバックするために、命令からインデックスを選択する。それゆえに、識別子は、置換されるべき次のキャッシュラインとして、無効化されたキャッシュラインをポイントする。]
[0041] 図3のシステム300に関連する図5を参照すると、システム300は、実行される命令がキャッシュ保全命令か否かを決定する(502および510)。システム300のためのキャッシュ保全命令は、インデックスによる無効化命令、またはアドレスによる無効化命令である。それゆえに、開始して(502)、システム300は命令がインデックスによる無効化命令であるか否かを決定する。命令がインデックスによる無効化命令である場合、次にシステム300は命令102から無効化インデックスを検索する(504)。インデックスに位置するキャッシュラインは、次に無効化される(506)。508に進み、システム200は、命令からのインデックスとして、セット104に対する識別子をキャストする。ある実施形態において、セレクタ304は、識別子114にフィードバックするために命令からインデックスを選択する。それゆえに、識別子は、置換されるべき次のキャッシュラインとして、無効化されたキャッシュラインをポイントする。]
[0042] 命令がインデックスによる無効化命令でない場合、次に、システム300は、命令がアドレスによるキャッシュ無効化命令であるか否かを決定する(510)。命令がアドレスによる無効化命令である場合、次に、システム300は命令102から無効化メモリアドレス(例えば、タグ108)を検索する(512)。514に進み、システム300は、セット104に対する任意のキャッシュラインが命令102から検索されたメモリアドレス(例えば、タグ108)のメモリ内の値を記憶するか否かを決定する。]
[0043] キャッシュラインがアドレスのメモリから値を記憶するとシステム300が決定する場合、次に、システム300の符号器302は、キャッシュインデックス(例えば、無効化されたキャッシュラインをポイントする4ビット識別値)を作成するために、タグコンパレータ116からの出力を符号化する(516)。518に進み、システム300は、セット104に対する識別子が無効化されるキャッシュラインをポイントするように、セット104に対する識別子を符号化された値にキャストする。キャッシュラインは無効化される(520)。]
[0044] 無効化アドレスのメモリ位置に記憶された値がキャッシュに記憶されないとシステム300が決定する場合(514)、セット104に対する識別子114は、キャッシュラインのどれもが無効化されないため、同じままである(522)。510に戻って参照すると、命令がアドレスによる無効化命令ではない場合、命令はキャッシュ保全命令ではない。従って、システム300は、インクリメンタ120の出力として、セット104に対する識別子をキャストする(524)。ある実施形態において、セレクタ304は、識別子114に値をフィードバックするためにインクリメンタ120の出力を選択する。インクリメンタ120がタグコンパレータ116からヒット信号118を受信する場合、インクリメンタ120は識別値を増やさない。インクリメンタ120がミス信号118を受信する場合、インクリメンタ120は識別値を増やす。それゆえに、セット104に対する識別子は、同じままであるか、または増やされる。]
[0045] キャッシュ置換システムを含む例示的なデバイス
マルチモードレジスタファイル(multimode register file)は、デジタル信号プロセッサなどのレジスタファイルを含む任意のプロセッサに含まれる。図6−10の概略図は、図2および3の概略図に示されるように、無効化されたキャッシュラインを置換するために、キャッシュ置換システムを組み込む例示的なデバイスを示す。]
[0046] 図6は、ポータブル通信デバイス600の例示的な実施形態を示す図である。図6の概略図で示されるように、ポータブル通信デバイスはデジタル信号プロセッサ(DSP)604を含むオンチップシステム602を含む。図6の概略図は、また、デジタル信号プロセッサ604およびディスプレイ608に結合されるディスプレイコントローラ606を示す。さらに、入力デバイス610はDSP 604に結合される。示されるように、メモリ612はDSP 604に結合される。加えて、符号器/復号器(CODEC)614はDSP 604 に結合される。スピーカ616およびマイクロフォン618はCODEC 614に結合される。]
[0047] 図6の概略図は、デジタル信号プロセッサ604および無線アンテナ622に結合された無線コントローラ620をさらに示す。特定の実施形態において、電源624は、オンチップシステム602に結合される。さらに、特定の実施形態において、図6で示されるように、ディスプレイ626、入力デバイス630、スピーカ616、マイクロフォン618、無線アンテナ622、電源624は、オンチップシステム602の外付けである。しかし、各々がオンチップシステム602のコンポーネントに結合される。]
[0048] 特定の実施形態において、DSP 604 は、DSP 604のキャッシュのどのキャッシュラインをメモリ612からの値と置換するかを決定するために、キャッシュ置換システム680を含む。]
[0049] 図7は、携帯電話700の例示的な実施形態を示す図である。示されるように、携帯電話700は、互いに結合されるデジタルベースバンドプロセッサ704およびアナログベースバンドプロセッサ706を含むオンチップシステム702を含む。特定の実施形態において、デジタルベースバンドプロセッサ704はデジタル信号プロセッサである。図7の概略図に示されるように、ディスプレイコントローラ708およびタッチスクリーンコントローラ710は、デジタルベースバンドプロセッサ704に結合される。次に、オンチップシステム702の外付けのタッチスクリーンディスプレイ712は、ディスプレイコントローラ708およびタッチスクリーンコントローラ710に結合される。]
[0050] 図7の概略図は、ビデオ符号器714(例えば、パル方式(PAL:phase alternating line)符号器、セカム方式(SECAM:sequential couleur a memoire)符号器、または、NTSC方式(NTSC:national television system committee)符号器)をさらに示し、それらはデジタルベースバンドプロセッサ704に結合される。さらに、ビデオ増幅器716はビデオ符号器714およびタッチスクリーンディスプレイ712に結合される。また、ビデオポート718はビデオ増幅器716に結合される。図7の概略図に描写されるように、USB(universal serial bus)コントローラ720はデジタルベースバンドプロセッサ704に結合される。また、USBポート722はUSBコントローラ720に結合される。メモリ724および加入者同定モジュール(SIM)カード726も、また、デジタルベースバンドプロセッサ704に結合される。さらに、図7の概略図に示されるように、デジタルカメラ728はデジタルベースバンドプロセッサ704に結合される。例示的な実施形態において、デジタルカメラ728は電荷結合素子(CCD:charge-coupled device)カメラまたは相補形金属酸化膜半導体(CMOS:complementary metal-oxide semiconductor)カメラである。]
[0051] 図7の概略図でさらに示されるように、ステレオオーディオCODEC 730はアナログベースバンドプロセッサ706に結合される。さらに、オーディオ増幅器732はステレオオーディオCODEC 730に結合される。例示的な実施形態において、第1のステレオスピーカ734および第2のステレオスピーカ736はオーディオ増幅器732に結合される。マイクロフォン増幅器738は、また、ステレオオーディオCODEC 730に結合される。加えて、マイクロフォン740はマイクロフォン増幅器738に結合される。特定の実施形態において、周波数変調(FM)ラジオチューナー742はステレオオーディオCODEC 730に結合される。また、FMアンテナ744はFMラジオチューナー742に結合される。さらに、ステレオヘッドフォン746はステレオオーディオCODEC 730に結合される。]
[0052] 図7の概略図は、無線周波数(RF)トランシーバ748がアナログベースバンドプロセッサ706に結合されることをさらに示す。RFスイッチ750はRFトランシーバ748およびRFアンテナ752に結合される。キーパッド754はアナログベースバンドプロセッサ706に結合される。また、マイクロフォン付のモノヘッドセット756はアナログベースバンドプロセッサ706に結合される。さらに、バイブレータデバイス758はアナログベースバンドプロセッサ706に結合される。図7の概略図は、また、電源760がオンチップシステム702に結合されることを示す。特定の実施形態において、電源760は携帯電話700の様々なコンポーネントに電力を提供する直流(DC)電源である。さらに、特定の実施形態において、電源は再充電可能なDCバッテリ、または、AC電源に結合された交流(AC)/DC変換変圧器から引き出されたDC電源である。]
[0053] 図7の概略図に描写されるように、タッチスクリーンディスプレイ712、ビデオポート718、USBポート722、カメラ728、第1のステレオスピーカ734、第2のステレオスピーカ736、マイクロフォン740、FMアンテナ744、ステレオヘッドフォン746、RFスイッチ750、RFアンテナ752、キーパッド754、モノヘッドセット756、バイブレータ758、および電源760は、オンチップシステム702の外付けである。特定の実施形態において、デジタルベースバンドプロセッサ704は、プロセッサ704のキャッシュのどのキャッシュラインをメモリ724からの値と置換するかを決定するためのキャッシュ置換システム780を含む。]
[0054] 図8は、無線インターネットプロトコル(IP)電話800の例示的な実施形態を示す図である。示されるように、無線IP電話800はデジタル信号プロセッサ(DSP)804を含むオンチップシステム802を含む。ディスプレイコントローラ806は、DSP 804に結合され、ディスプレイ808はディスプレイコントローラ806に結合される。例示的な実施形態において、ディスプレイ808は液晶ディスプレイ(LCD)である。図8は、キーパッド810がDSP 804に結合されることをさらに示す。]
[0055] フラッシュメモリ812はDSP 804に結合される。同期ダイナミックランダムアクセスメモリ(SDRAM:synchronous dynamic random access memory)814、スタティックランダムアクセスメモリ(SRAM:static random access memory)816、および電気的消去可能PROM(EEPROM)818も、また、DSP 804に結合される。図8の概略図は、また、発光ダイオード(LED)820がDSP 804に結合されることを示す。加えて、特定の実施形態において、音声CODEC 822はDSP 804に結合される。増幅器824は音声CODEC 822に結合され、モノスピーカ826は増幅器824に結合される。図8の概略図は、さらに、音声CODEC 822に結合されたモノヘッドセット828を示す。特定の実施形態において、モノヘッドセット828はマイクロフォンを含む。]
[0056] 無線ローカルエリアネットワーク(WLAN)ベースバンドプロセッサ830はDSP 804に結合される。RFトランシーバ832はWLANベースバンドプロセッサ830に結合され、RFアンテナ834はRFトランシーバ832に結合される。特定の実施形態において、ブルートゥースコントローラ836は、また、DSP 804に結合され、ブルートゥースアンテナ838はコントローラ836に結合される。図8の概略図は、また、USBポート840もDSP 804に結合されることを示す。さらに、電源842はオンチップシステム802に結合され、無線IP電話800の様々なコンポーネントに電力を提供する。]
[0057] 図8の概略図で示されるように、ディスプレイ808、キーパッド810、LED 820、スピーカ826、モノヘッドセット828、RFアンテナ834、ブルートゥースアンテナ838、USBポート840、および電源842はオンチップシステム802の外付けであり、オンチップシステム802の1つ以上のコンポーネントに結合される。特定の実施形態において、デジタル信号プロセッサ804は、プロセッサ804のキャッシュのどのキャッシュラインがフラッシュ812、SDRAM814、SRAM 816、および/またはEEPROM818からの値と置換するかを決定するためのキャッシュ置換システム880を含む。]
[0058] 図9はポータブルデジタルアシスタント(PDA)900の例示的な実施形態を示す図である。示されるように、PDA 900はデジタル信号プロセッサ(DSP)904を含むオンチップシステム902を含む。タッチスクリーンコントローラ906およびディスプレイコントローラ908はDSP 904に結合される。さらに、タッチスクリーンディスプレイ910はタッチスクリーンコントローラ906およびディスプレイコントローラ908に結合される。図9の概略図は、また、キーパッド912がDSP 904に結合されることを示す。]
[0059] 特定の実施形態において、ステレオオーディオCODEC 926はDSP 904に結合される。第1のステレオ増幅器928はステレオオーディオCODEC 926に結合され、第1のステレオスピーカ930は第1のステレオ増幅器928に結合される。加えて、マイクロフォン増幅器932はステレオオーディオCODEC 926 に結合され、マイクロフォン934はマイクロフォン増幅器932に結合される。図9の図は、さらに、第2のステレオ増幅器936がステレオオーディオCODEC 926に結合され、第2のステレオスピーカ938が第2のステレオ増幅器936に結合されることを示す。特定の実施形態において、ステレオヘッドフォン940は、また、ステレオオーディオCODEC 926に結合される。]
[0060] 図9の概略図は、また、802.11コントローラ924がDSP 904に結合され、802.11アンテナ944が802.11コントローラ942に結合されることを示す。さらに、ブルートゥースコントローラ946はDSP 904に結合され、ブルートゥースアンテナ948はブルートゥースコントローラ946に結合される。USBコントローラ950はDSP 904に結合され、USBポート952 はUSBコントローラ950に結合される。そのうえ、スマートカード954、例えばマルチメディアカード(MMC:multimedia card)またはSDカード(SD:secure digital card)はDSP 904に結合される。さらに、電源956はオンチップシステム902に結合され、PDA 900の様々なコンポーネントに電力を提供する。]
[0061] 図9の概略図で示されるように、ディスプレイ910、キーパッド912、IrDAポート922、デジタルカメラ924、第1のステレオスピーカ930、マイクロフォン934、第2のステレオスピーカ938、ステレオヘッドフォン940、802.11アンテナ944、ブルートゥースアンテナ948、USBポート952、および電源956はオンチップシステム902の外付けであり、オンチップシステム上の1つ以上のコンポーネントに結合される。特定の実施形態において、デジタル信号プロセッサ904は、プロセッサ904のキャッシュのどのキャッシュラインがフラッシュ914、ROM 916、DRAM918、および/またはEEPROM920からの値と置換するかを決定するためのキャッシュ置換システム980を含む。]
[0062] 図10は、オーディオファイルプレーヤ(例えばMP3プレーヤ)1000の例示的な実施形態を示す図である。示されるように、オーディオファイルプレーヤ1000は、デジタル信号プロセッサ(DSP)1004を含むオンチップシステム1002を含む。ディスプレイコントローラ1006はDSP 1004に結合され、ディスプレイ1008はディスプレイコントローラ1006に結合される。例示的な実施形態において、ディスプレイ1008は液晶ディスプレイ(LCD)である。キーパッド1010はDSP 1004に結合される。]
[0063] 図10の概略図にさらに描写されるように、フラッシュメモリ1012および読み取り専用メモリ(ROM)1014はDSP 1004に結合される。さらに、特定の実施形態において、オーディオCODEC 1016はDSP 1004に結合される。増幅器1018はオーディオCODEC 1016に結合され、モノスピーカ1020は増幅器1018に結合される。図10の概略図は、マイクロフォン入力1022およびステレオ入力1024が、また、オーディオCODEC 1016に結合されることをさらに示す。特定の実施形態において、ステレオヘッドフォン1026は、また、オーディオCODEC 1016に結合される。]
[0064] USBポート1028およびスマートカード1030はDSP 1004に結合される。加えて、電源1032はオンチップシステム1002に結合され、オーディオファイルプレーヤ1000の様々なコンポーネントに電力を提供する。]
[0065] 図10の概略図で示されるように、ディスプレイ1008、キーパッド1010、モノスピーカ1020、マイクロフォン入力1022、ステレオ入力1024、ステレオヘッドフォン1026、USBポート1028および電源1032はオンチップシステム1002の外付けであり、オンチップシステム1002上の1つ以上のコンポーネントに結合される。特定の実施形態において、デジタル信号プロセッサ1004は、プロセッサ1004のキャッシュのどのキャッシュラインがフラッシュ1012、および/またはROM 1014からの値と置換するかを決定するためのキャッシュ置換システム1080を含む。]
[0066] 本明細書に開示された発明のコンセプトの実施形態の以上の記載は、例示および説明の目的のためだけに示されており、網羅的であること、または、ここに開示された発明のコンセプトを開示された正確な形態に限定することを意図するものではない。これらの実施形態に対する様々な変更および適応は、本明細書で開示された本発明の精神または範囲を逸脱することなく当業者には容易に明らかである。]
权利要求:

請求項1
複数のキャッシュラインを備えるキャッシュと;置換用のキャッシュラインを識別するように構成された識別子と;インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された前記識別子の値を決定するように構成された制御ロジックと;を備えるシステム。
請求項2
前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、請求項1のシステム。
請求項3
前記キャッシュ保全命令は、前記制御ロジックによって選択される前記値を含む、請求項2のシステム。
請求項4
前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、請求項1のシステム。
請求項5
前記制御ロジックは、前記キャッシュに記憶される情報のタグインデックスを備える、請求項4のシステム。
請求項6
前記制御ロジックは、前記保全命令のタグが、既定のセットの前記タグインデックスに記憶されたタグのいずれかと一致するか否かを決定するように構成されたコンパレータをさらに備える、請求項5のシステム。
請求項7
前記制御ロジックは、前記タグインデックス内の前記複数のタグの各々の有効性を記憶するように構成された状態インデックスをさらに備え、前記コンパレータは前記タグインデックスに記憶された前記タグが有効であるか否かを決定するように構成される、請求項6のシステム。
請求項8
前記制御ロジックは、前記コンパレータの前記出力を受信し、前記識別子の前記値としての選択のために、前記保全命令の前記出力として、キャッシュラインのウェイアドレスに前記出力を符号化するように構成された符号器をさらに備える、請求項7のシステム。
請求項9
複数のキャッシュラインを備えるキャッシュから置換のためのキャッシュラインを識別子によって識別することと;インクリメンタ、キャッシュ保全命令、または同じ値のままから選択された前記識別子の値を制御ロジックによって決定することと;を備える方法。
請求項10
前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、請求項9の方法。
請求項11
前記キャッシュ保全命令は、前記制御ロジックによって選択された前記値を含む、請求項10の方法。
請求項12
前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、請求項9の方法。
請求項13
前記キャッシュに記憶された情報のタグインデックスを前記制御ロジックによって記憶することと;前記保全命令のタグが、既定のセットの前記タグインデックスに記憶された任意のタグと一致するか否かを、コンパレータによって決定することと;をさらに備える、請求項12の方法。
請求項14
前記タグインデックス内の前記タグと前記保全命令の前記タグの一致を決定すると、前記タグインデックス内のタグが有効であるか否かを、前記コンパレータによって決定することをさらに備える、請求項13の方法。
請求項15
前記識別子の前記値としての選択のために、符号器によって、前記コンパレータの出力を前記保全命令の前記出力としてキャッシュラインのウェイアドレスに符号化することをさらに備える、請求項14の方法。
請求項16
複数のキャッシュラインを備えるキャッシュから、置換のためのキャッシュラインを識別する手段と;インクリメンタ、キャッシュ保全命令、または同じ値のままから選択されたキャッシュラインを識別するための前記手段の値を決定する手段と;を備えるシステム。
請求項17
前記キャッシュ保全命令は、インデックスによるキャッシュ無効化命令である、請求項16のシステム。
請求項18
前記キャッシュ保全命令は、アドレスによるキャッシュ無効化命令である、請求項16のシステム。
請求項19
前記キャッシュに記憶される前記保全命令の状態の位置を決定する手段をさらに備える、請求項18のシステム。
請求項20
置換される前記キャッシュラインとして識別される前記位置を符号化する手段をさらに備える、請求項18のシステム。
类似技术:
公开号 | 公开日 | 专利标题
US9218286B2|2015-12-22|System cache with partial write valid states
JP6392286B2|2018-09-19|マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
DE602004003583T2|2007-11-22|System und Verfahren zum Datensichern bei Stromausfall
EP2157507B1|2013-05-01|Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit
US6769052B2|2004-07-27|Cache with selective write allocation
TWI412993B|2013-10-21|增加於多核心處理器上的一個或多個核心之工作量效能
US7606976B2|2009-10-20|Dynamically scalable cache architecture
US7533250B2|2009-05-12|Automatic operand load, modify and store
JP4057114B2|2008-03-05|キャッシュを有するデータ処理システムおよびそのための方法
US7930525B2|2011-04-19|Method and apparatus for an efficient multi-path trace cache design
ES2341799T3|2010-06-28|Sistema y procedimiento de computo de ceros de cabeza y de computo de unos de cabeza en un procesador de señal digital.
CN101501634B|2013-05-29|使用标量/向量指令处理数据的系统和方法
JP5555224B2|2014-07-23|低電力メディアレンダリングサブシステムを備えたモバイル電話
CN101203830B|2016-02-10|用于在交错的多线程环境中操作的数字信号处理器的寄存器堆
US5657288A|1997-08-12|Efficient addressing of large memories
US20160378683A1|2016-12-29|64KB Page System that Supports 4KB Page Operations
JP5144542B2|2013-02-13|アドレス変換バイパスを有するデータ処理システム及びその方法
EP2261815A2|2010-12-15|Multithread processor with efficient processing for convergence device applications
US7434029B2|2008-10-07|Inter-processor control
JP2013145568A|2013-07-25|ロックインジケータを有するマルチスレッドプロセッサ
KR100929461B1|2009-12-02|저전력 마이크로프로세서 캐시 메모리 및 그 동작 방법
EP2423821A2|2012-02-29|Processor, apparatus, and method for fetching instructions and configurations from a shared cache
JP5329563B2|2013-10-30|マルチスレッド・プロセッサのための共有割込みコントローラ
EP3245587B1|2020-07-15|Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
JP2004062280A|2004-02-26|半導体集積回路
同族专利:
公开号 | 公开日
US8464000B2|2013-06-11|
CN105868128B|2018-05-18|
CN105868128A|2016-08-17|
EP2260388A1|2010-12-15|
WO2009108463A1|2009-09-03|
KR101252744B1|2013-04-09|
CN101960433A|2011-01-26|
KR20100119820A|2010-11-10|
TW200945051A|2009-11-01|
US8812789B2|2014-08-19|
US20090222626A1|2009-09-03|
JP5474836B2|2014-04-16|
EP2260388B1|2016-08-31|
US20130254489A1|2013-09-26|
CN101960433B|2016-04-27|
JP5722389B2|2015-05-20|
JP2013232210A|2013-11-14|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-09-26| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120925 |
2012-12-26| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121225 |
2013-01-08| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130107 |
2013-01-23| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130122 |
2013-02-20| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130219 |
2013-05-21| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130520 |
2013-05-28| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130527 |
2013-06-20| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130619 |
2013-07-17| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130716 |
2013-11-19| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131118 |
2013-11-26| A911| Transfer of reconsideration by examiner before appeal (zenchi)|Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20131125 |
2013-12-18| TRDD| Decision of grant or rejection written|
2014-01-08| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140107 |
2014-02-13| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140205 |
2014-02-14| R150| Certificate of patent or registration of utility model|Ref document number: 5474836 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2017-02-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-02-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-02-14| LAPS| Cancellation because of no payment of annual fees|
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]